package com.ruoyi.glsims.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.glsims.domain.Prove;
import org.apache.ibatis.annotations.Param;

/**
 * 离校申请Mapper接口
 *
 * @author airted
 * @date 2023-09-12
 */
public interface ProveMapper
{
    /**
     * 查询离校申请
     *
     * @param proveId 离校申请主键
     * @return 离校申请
     */
    public Prove selectProveByProveId(Long proveId);

    /**
     * 查询离校申请列表
     *
     * @param prove 离校申请
     * @return 离校申请集合
     */
    public List<Prove> selectProveList(Prove prove);


    /**
     * 查询离校申请列表(学生)
     *
     * @return 离校申请集合
     */
    public List<Prove> selectProveListByStudent(Prove prove);

    /**
     * 新增离校申请
     *
     * @param prove 离校申请
     * @return 结果
     */
    public int insertProve(Prove prove);

    /**
     * 修改离校申请
     *
     * @param prove 离校申请
     * @return 结果
     */
    public int updateProve(Prove prove);

    /**
     * 删除离校申请
     *
     * @param proveId 离校申请主键
     * @return 结果
     */
    public int deleteProveByProveId(Long proveId);

    /**
     * 批量删除离校申请
     *
     * @param proveIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProveByProveIds(Long[] proveIds);

//    NK
    /**
     * 统计已通过数量
     * @return 数量
     */
    Integer countPassed();

    /**
     * 统计未通过数量
     * @return 数量
     */
    Integer countUnPass();

    /**
     * 统计未审核数量
     * @return 数量
     */
    Integer countUnCheck();

    /**
     * 计算前几天的日期
     * @param day 指定的日期
     * @param n 前几天
     * @return 前几天的日期，格式：yyyy-MM-dd
     */
    String dateSub(@Param("day") String day, @Param("n")Integer n);

    /**
     * 根据日期查询当日申请数量
     * @param day 日期
     * @return 数量
     */
    Integer countApplyByDay(String day);

    /**
     * 根据id修改审核状态
     * @param id 用户id
     * @param newStatus 新状态
     * @return 修改成功的条目数
     */
    Integer updateStatusById(Integer id,Integer newStatus);
//    NK:end
}
